package main

import (
	"fmt"
	"time"
)

// 给 channel_block3.go 的通道增加缓冲并观察输出有何不同

func main() {
	ch := make(chan int, 1)
	go func() {
		time.Sleep(5e9)
		ch <- 12
		fmt.Println("send int to chan")
	}()

	// 因为ch有缓冲, main可以直接发送不会阻塞, 发送完之后直接结束,
	// 而协程还在休眠, 还没从chan中接收到值就随main主程一起结束了
	// ch <- 10
	// fmt.Println("Send int to chan")

	// 阻塞等待, 直到ch接收到值
	x := <-ch
	fmt.Println("received from chan: ", x)
}
